package com.lingyu.jsjx.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 教师信息对象 jsjx_staff_info
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@TableName("jsjx_staff_info")
public class StaffInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 教职工ID */
    @TableId(type = IdType.AUTO, value="staff_id")
    private Long staffId;

    /** 教职工姓名id */
    private Long userId;

    /** 教职工姓名name */
    @Excel(name = "教职工姓名")
    private String userName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idNumber;

    /** 性别id */
    private Long genderId;

    /** 性别name */
    @Excel(name = "性别")
    private String genderName;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 证件照路径 */
    private String photoFileId;

    /** 所属学院id */
    private Long collageId;

    /** 所属学院name */
    @Excel(name = "所属学院")
    private String collageName;

    /** 职称 */
    @Excel(name = "职称")
    private String title;

    /** 学历id */
    private Long educationId;

    /** 学历name */
    @Excel(name = "学历")
    private String educationName;

    /** 职业证书名称 */
    @Excel(name = "职业证书名称")
    private String certificateName;

    /** 证书获取时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书获取时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certificateDate;

    /** 所属专业id */
    private Long majorId;

    /** 所属专业name */
    @Excel(name = "所属专业")
    private String majorName;

    /** 证书类型 */
    private Long certificateTypeId;

    /** 证书类型 */
    @Excel(name = "证书类型")
    private String certificateTypeName;



    @TableField(exist = false)
    private List<FileInfo> photoFileList;

    public List<FileInfo> getPhotoFileList() {
        return photoFileList;
    }

    public void setPhotoFileList(List<FileInfo> photoFileList) {
        this.photoFileList = photoFileList;
    }

    public void setStaffId(Long staffId)
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setIdNumber(String idNumber) 
    {
        this.idNumber = idNumber;
    }

    public String getIdNumber() 
    {
        return idNumber;
    }
    public void setGenderId(Long genderId) 
    {
        this.genderId = genderId;
    }

    public Long getGenderId() 
    {
        return genderId;
    }
    public void setGenderName(String genderName) 
    {
        this.genderName = genderName;
    }

    public String getGenderName() 
    {
        return genderName;
    }
    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setPhotoFileId(String photoFileId) 
    {
        this.photoFileId = photoFileId;
    }

    public String getPhotoFileId() 
    {
        return photoFileId;
    }
    public void setCollageId(Long collageId) 
    {
        this.collageId = collageId;
    }

    public Long getCollageId() 
    {
        return collageId;
    }
    public void setCollageName(String collageName) 
    {
        this.collageName = collageName;
    }

    public String getCollageName() 
    {
        return collageName;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setEducationId(Long educationId) 
    {
        this.educationId = educationId;
    }

    public Long getEducationId() 
    {
        return educationId;
    }
    public void setEducationName(String educationName) 
    {
        this.educationName = educationName;
    }

    public String getEducationName() 
    {
        return educationName;
    }
    public void setCertificateName(String certificateName) 
    {
        this.certificateName = certificateName;
    }

    public String getCertificateName() 
    {
        return certificateName;
    }
    public void setCertificateDate(Date certificateDate) 
    {
        this.certificateDate = certificateDate;
    }

    public Date getCertificateDate() 
    {
        return certificateDate;
    }
    public void setMajorId(Long majorId) 
    {
        this.majorId = majorId;
    }

    public Long getMajorId() 
    {
        return majorId;
    }
    public void setMajorName(String majorName) 
    {
        this.majorName = majorName;
    }

    public String getMajorName() 
    {
        return majorName;
    }
    public void setCertificateTypeId(Long certificateTypeId) 
    {
        this.certificateTypeId = certificateTypeId;
    }

    public Long getCertificateTypeId() 
    {
        return certificateTypeId;
    }
    public void setCertificateTypeName(String certificateTypeName) 
    {
        this.certificateTypeName = certificateTypeName;
    }

    public String getCertificateTypeName() 
    {
        return certificateTypeName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("staffId", getStaffId())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("idNumber", getIdNumber())
            .append("genderId", getGenderId())
            .append("genderName", getGenderName())
            .append("birthDate", getBirthDate())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("photoFileId", getPhotoFileId())
            .append("collageId", getCollageId())
            .append("collageName", getCollageName())
            .append("title", getTitle())
            .append("educationId", getEducationId())
            .append("educationName", getEducationName())
            .append("certificateName", getCertificateName())
            .append("certificateDate", getCertificateDate())
            .append("majorId", getMajorId())
            .append("majorName", getMajorName())
            .append("certificateTypeId", getCertificateTypeId())
            .append("certificateTypeName", getCertificateTypeName())
            .append("createBy", getCreateBy())
            .append("createByName", getCreateByName())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateByName", getUpdateByName())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
